﻿using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Tilemaps;

namespace 凌依.工具库.U2D地图
{
    public class 瓦片地图
    {

        /// <summary>
        /// 创建用于2d瓦片地图的瓦片
        /// </summary>
        /// <param name="图片"></param>
        /// <param name="名称"></param>
        /// <returns></returns>
        public static Tile 创建_瓦片(Sprite 图片)
        {
            Tile a = ScriptableObject.CreateInstance<Tile>();
            a.sprite = 图片;
            return a;
        }
        public static Tile[] 创建_瓦片(Sprite[] 图片)
        {
            List<Tile> 结果 = new List<Tile>();
            foreach (Sprite i in 图片)
            {
                Tile a = ScriptableObject.CreateInstance<Tile>();
                a.sprite = i;
                结果.Add(a);
            }

            return 结果.ToArray();
        }
        /// <summary>
        /// 创建用于2d瓦片地图的瓦片
        /// </summary>
        /// <param name="图片"></param>
        /// <param name="名称"></param>
        /// <returns></returns>
        public static Tile 创建_瓦片(Sprite 图片, string 名称)
        {
            Tile a = ScriptableObject.CreateInstance<Tile>();
            a.sprite = 图片;
            a.name = 名称;
            return a;
        }
        public static Tile 创建_瓦片(Sprite 图片, Color 颜色叠加)
        {
            Tile a = ScriptableObject.CreateInstance<Tile>();
            a.sprite = 图片;
            a.color = 颜色叠加;
            return a;
        }
        public static Tile 创建_瓦片(Sprite 图片, string 名称, Color 颜色叠加)
        {
            Tile a = ScriptableObject.CreateInstance<Tile>();
            a.sprite = 图片;
            a.name = 名称;
            a.color = 颜色叠加;
            return a;
        }


        /// <summary>
        /// 删除瓦片地图中  你给的坐标的瓦片
        /// </summary>
        /// <param name="地图"></param>
        /// <param name="地图坐标"></param>
        public static void 区块_清除(Tilemap 地图, Vector3Int 地图坐标)
        {
            地图.SetTile(地图坐标, null);
        }
        /// <summary>
        /// 设置 坐标  位置  瓦片
        /// </summary>
        /// <param name="地图"></param>
        /// <param name="地图坐标"></param>
        /// <param name="瓦片"></param>
        public static void 区块_创建(Tilemap 地图, Vector3Int 地图坐标, Tile 瓦片)
        {
            地图.SetTile(地图坐标, 瓦片);
        }

        public static void 区块_创建(Tilemap 地图, Vector3Int 地图坐标, Tile 瓦片, Color 色彩偏移)
        {
            地图.SetTile(地图坐标, 瓦片);
            地图.SetColor(地图坐标, 色彩偏移);
        }
    }
}
